Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DWARF2 unwind support #3

Merged
merged 2 commits into from Jan 23, 2013
Merged

Conversation

bluecmd
Copy link

@bluecmd bluecmd commented Jan 22, 2013

This patch will switch the default to use DWARF2 unwinding and exception handling instead of the old setjmp / longjmp.

I have tested both manual stack unwinding using _Unwind_Backtrace and all kinds of different C++ exceptions I can think of.

To support exceptions through signal handlers one need to add linux-unwind.h like other architectures, but I couldn't find any use except in java so I chose to leave it as a TODO.

I suggest building GCC with --disable-sjlj-exceptions but it should not matter.

For this patch to work, please checkout my pull request related to CFI in or1k-src as well.

ChangeLog:

(TARGET_EXCEPT_UNWIND_INFO) define.

(or1k_except_unwind_info) use DWARF2 unwind info as default
but support SJLJ if forced with --enable-sjlj-exceptions.

  • config/or1k/or1k-protos.h:

    (or1k_expand_pic_symbol_ref) removed unneeded ATTRIBUTE_UNUSED.

    (or1k_eh_return_handler_rtx) defined prototype (body in or1k.c).

    (or1k_return_addr_rtx) defined prototype (body in or1k.c).

  • config/or1k/or1k.c:

    (or1k_save_reg_p) save stack pointer when frame pointer is not saved.

    (or1k_save_reg_p) save registers used with eh_return.

    (or1k_expand_epilogue) do not restore link register if we are
    returning from eh_return.

    (or1k_expand_epilogue) apply EH stack adjustment to stack pointer.

    (or1k_eh_return_handler_rtx) eh_return should write to the link register.

    (or1k_return_addr_rtx) in the case of GOT the link register cannot be read
    after the prologue. in this case, use the stored link register from the
    stack frame.

    (or1k_frame_pointer_required) require FP in eh_return and
    when alloca is used.

    (TARGET_FRAME_POINTER_REQUIRED) define.

  • config/or1k/or1k.h:

    (INITIAL_FRAME_POINTER_OFFSET) not used, removed.

    (RETURN_ADDR_RTX) define.

    (EH_RETURN_REGNUM) define. use reg 23.

    (EH_RETURN_DATA_REGNO) define. use reg 25, 27, 29 and 31.

    (EH_RETURN_STACKADJ_RTX) define.

    (EH_RETURN_HANDLER_RTX) define.

  (TARGET_EXCEPT_UNWIND_INFO) define.
  (or1k_except_unwind_info) use DWARF2 unwind info as default
  but support SJLJ if forced with --enable-sjlj-exceptions.
  * config/or1k/or1k-protos.h:
  (or1k_expand_pic_symbol_ref) removed unneeded ATTRIBUTE_UNUSED.
  (or1k_eh_return_handler_rtx) defined prototype (body in or1k.c).
  (or1k_return_addr_rtx) defined prototype (body in or1k.c).
  * config/or1k/or1k.c:
  (or1k_save_reg_p) save stack pointer when frame pointer is not saved.
  (or1k_save_reg_p) save registers used with eh_return.
  (or1k_expand_epilogue) do not restore link register if we are
  returning from eh_return.
  (or1k_expand_epilogue) apply EH stack adjustment to stack pointer.
  (or1k_eh_return_handler_rtx) eh_return should write to the link register.
  (or1k_return_addr_rtx) in the case of GOT the link register cannot be read
  after the prologue. in this case, use the stored link register from the
  stack frame.
  (or1k_frame_pointer_required) require FP in eh_return and
  when alloca is used.
  (TARGET_FRAME_POINTER_REQUIRED) define.
  * config/or1k/or1k.h:
  (INITIAL_FRAME_POINTER_OFFSET) not used, removed.
  (RETURN_ADDR_RTX) define.
  (EH_RETURN_REGNUM) define. use reg 23.
  (EH_RETURN_DATA_REGNO) define. use reg 25, 27, 29 and 31.
  (EH_RETURN_STACKADJ_RTX) define.
  (EH_RETURN_HANDLER_RTX) define.
@skristiansson skristiansson merged commit 29f3097 into openrisc:or1k Jan 23, 2013
skristiansson referenced this pull request Oct 1, 2013
	* tree-flow.h (ssa_undefined_value_p): Remove prototype.
	* tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
	(warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
	make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c.
	* tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c
	(has_undefined_value_p): New.  Pass dependant parts of 
	ssa_undefined_value_p.
	(uninit_undefined_value_p): Use has_undefined_value_p.
	(warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
	make_pass_early_warn_uninitialized): Move from tree-ssa.c
	* tree-ssa.h: Adjust prototypes

2013-09-17  Jan Hubicka  <jh@suse.cz>

	PR middle-end/58329
	* ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
	to return NULL.
	* ipa.c (function_and_variable_visibility): Likewise.
	* ipa-profile.c (ipa_profile): Likewise.

2013-09-17  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR ipa/58398
	* cgraph.c (cgraph_function_body_availability): Check for ifunc
	attribute, and don't inline the resolver in this case.

2013-09-17  Teresa Johnson  <tejohnson@google.com>

	* coverage.c (get_coverage_counts): Add missing newline.

2013-09-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR tree-optimization/58088
	* fold-const.c (mask_with_trailing_zeros): New function.
	(fold_binary_loc): Make sure we don't recurse infinitely
	when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
	Use mask_with_trailing_zeros where appropriate.

2013-09-17  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
	of 'prev' var to get better distance estimation.

2013-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-inline.h (struct copy_body_data): Add transform_parameter.
	* tree-inline.c (is_parameter_of): New predicate.
	(remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
	a parameter has been remapped.
	(copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
	(optimize_inline_calls): Initialize transform_parameter.
	(copy_gimple_seq_and_replace_locals): Likewise.
	(tree_function_versioning): Likewise.
	(maybe_inline_call_in_expr): Likewise.

2013-09-17  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430-protos.h: Add prototypes for new functions.
	* config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
	interrupt handlers.
	(is_attr_func): New function.
	(msp430_is_interrupt_func): New function.
	(is_naked_func): New function.
	(is_reentrant_func): New function.
	(is_critical_func): New function.
	(msp430_start_function): Add annotations for function attributes.
	(msp430_attr): New function.
	(msp430_attribute_table): New.
	(msp430_function_section): New function.
	(TARGET_ASM_FUNCTION_SECTION): Define.
	(msp430_builtin): New enum.
	(msp430_init_builtins): New function.
	(msp430_builtin_devl): New function.
	(msp430_expand_builtin): New function.
	(TARGET_INIT_BUILTINS): Define.
	(TARGET_EXPAND_BUILTINS): Define.
	(TARGET_BUILTIN_DECL): Define.
	(msp430_expand_prologue): Add support for naked, interrupt,
	critical and reentrant functions.
	(msp430_expand_epilogue): Likewise.
	(msp430_print_operand): Handle 'O' character.
	* config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
	NO_TRAMPOLINES.
	* config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
	UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
	(pushm): Use a 'n' rather than an 'i' constraint.
	(msp_return): Add generation of the interrupt return instruction.
	(disable_interrupts): New pattern.
	(enable_interrupts): New pattern.
	(push_intr_state): New pattern.
	(pop_intr_state): New pattern.
	(bic_SR): New pattern.
	(bis_SR): New pattern.
	* doc/extend.texi: Document MSP430 function attributes and builtin
	functions.

2013-09-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58432
	* tree-loop-distribution.c (tree_loop_distribution): Also
	scan PHIs for outside loop uses and seed a partition from them.

2013-09-17  Bin Cheng  <bin.cheng@arm.com>

	* gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
	(restructure_reference): Call backtrace_base_for_ref.

2013-09-17  Alan Modra  <amodra@gmail.com>

	PR target/57589
	* config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch.

2013-09-16  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
	vregs location for RL78/G10.
	(rl78_expand_prologue): Avoid SEL on G10.
	(rl78_expand_epilogue): Likewise.
	(rl78_peep_movhi_p): Can't move a constant to memory in HImode.
	* config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
	__RL78_G10__ when appropriate.
	(ASM_SPEC): Pass -mg10 along to the assembler.
	* config/rl78/rl78.md (sel_rb): Disable for G10.
	* config/rl78/rl78.opt: Add -mg10 option.
	* config/rl78/t-rl78: Add -mg10 multilib.

2013-09-16  Xinliang David Li  <davidxl@google.com>

	* tree-if-conv.c (main_tree_if_conversion): Check new flag.
	* omp-low.c (omp_max_vf): Ditto.
	(expand_omp_simd): Ditto.
	* tree-vectorizer.c (vectorize_loops): Ditto.
	(gate_vect_slp): Ditto.
	(gate_increase_alignment): Ditto.
	* tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
	* tree-ssa-loop.c (gate_tree_vectorize): Ditto.
	(gate_tree_vectorize): Name change.
	(tree_vectorize): Ditto.
	(pass_vectorize::gate): Call new function.
	(pass_vectorize::execute): Ditto.
	opts.c: O3 default setting change.
	(finish_options): Check new flag.
	* doc/invoke.texi: Document new flags.
	* common.opt: New flags.

2013-09-16  Andreas Schwab  <schwab@linux-m68k.org>

	* doc/tm.texi.in (Cond Exec Macros): Remove node.
	(Condition Code): Don't reference it.
	* doc/tm.texi: Regenerate.

2013-09-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/58418
	* lra-constraints.c (undo_optional_reloads): Consider all optional
	reload even if it did not get a hard reg.

2013-09-16  Teresa Johnson  <tejohnson@google.com>

	* dumpfile.c (dump_loc): Remove newline emission.
	* tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
	emission to dump_printf_loc calls where missing.
	(vect_mark_for_runtime_alias_test): Ditto.
	(vect_analyze_data_ref_dependence): Ditto.
	(vect_analyze_data_ref_dependences): Ditto.
	(vect_slp_analyze_data_ref_dependence): Ditto.
	(vect_slp_analyze_data_ref_dependences): Ditto.
	(vect_compute_data_ref_alignment): Ditto.
	(vect_update_misalignment_for_peel): Ditto.
	(vect_verify_datarefs_alignment): Ditto.
	(vector_alignment_reachable_p): Ditto.
	(vect_get_data_access_cost): Ditto.
	(vect_enhance_data_refs_alignment): Ditto.
	(vect_find_same_alignment_drs): Ditto.
	(vect_analyze_data_refs_alignment): Ditto.
	(vect_analyze_group_access): Ditto.
	(vect_analyze_data_ref_access): Ditto.
	(vect_analyze_data_ref_accesses): Ditto.
	(vect_prune_runtime_alias_test_list): Ditto.
	(vect_analyze_data_refs): Ditto.
	(vect_create_addr_base_for_vector_ref): Ditto.
	(vect_create_data_ref_ptr): Ditto.
	(vect_grouped_store_supported): Ditto.
	(vect_grouped_load_supported): Ditto.
	* value-prof.c (check_counter): Ditto.
	(check_ic_target): Ditto.
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
	(vect_recog_widen_mult_pattern): Ditto.
	(vect_recog_widen_sum_pattern): Ditto.
	(vect_recog_over_widening_pattern): Ditto.
	(vect_recog_widen_shift_pattern): Ditto.
	(vect_recog_rotate_pattern): Ditto.
	(vect_recog_vector_vector_shift_pattern): Ditto.
	(vect_recog_divmod_pattern): Ditto.
	(vect_recog_mixed_size_cond_pattern): Ditto.
	(vect_recog_bool_pattern): Ditto.
	(vect_pattern_recog_1): Ditto.
	(vect_pattern_recog): Ditto.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
	(vect_is_simple_iv_evolution): Ditto.
	(vect_analyze_scalar_cycles_1): Ditto.
	(vect_get_loop_niters): Ditto.
	(vect_analyze_loop_1): Ditto.
	(vect_analyze_loop_form): Ditto.
	(vect_analyze_loop_operations): Ditto.
	(vect_analyze_loop_2): Ditto.
	(vect_analyze_loop): Ditto.
	(report_vect_op): Ditto.
	(vect_is_slp_reduction): Ditto.
	(vect_is_simple_reduction_1): Ditto.
	(vect_get_known_peeling_cost): Ditto.
	(vect_estimate_min_profitable_iters): Ditto.
	(vect_model_reduction_cost): Ditto.
	(vect_model_induction_cost): Ditto.
	(get_initial_def_for_induction): Ditto.
	(vect_create_epilog_for_reduction): Ditto.
	(vectorizable_reduction): Ditto.
	(vectorizable_induction): Ditto.
	(vectorizable_live_operation): Ditto.
	(vect_loop_kill_debug_uses): Ditto.
	(vect_transform_loop): Ditto.
	* tree-vect-stmts.c (vect_mark_relevant): Ditto.
	(vect_stmt_relevant_p): Ditto.
	(process_use): Ditto.
	(vect_mark_stmts_to_be_vectorized): Ditto.
	(vect_model_simple_cost): Ditto.
	(vect_model_promotion_demotion_cost): Ditto.
	(vect_model_store_cost): Ditto.
	(vect_get_store_cost): Ditto.
	(vect_model_load_cost): Ditto.
	(vect_get_load_cost): Ditto.
	(vect_init_vector_1): Ditto.
	(vect_get_vec_def_for_operand): Ditto.
	(vect_finish_stmt_generation): Ditto.
	(vectorizable_call): Ditto.
	(vectorizable_conversion): Ditto.
	(vectorizable_assignment): Ditto.
	(vectorizable_shift): Ditto.
	(vectorizable_operation): Ditto.
	(vectorizable_store): Ditto.
	(vectorizable_load): Ditto.
	(vectorizable_condition): Ditto.
	(vect_analyze_stmt): Ditto.
	(vect_transform_stmt): Ditto.
	(vect_is_simple_use): Ditto.
	* tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
	(vect_can_advance_ivs_p): Ditto.
	(vect_update_ivs_after_vectorizer): Ditto.
	(vect_do_peeling_for_loop_bound): Ditto.
	(vect_gen_niters_for_prolog_loop): Ditto.
	(vect_update_inits_of_drs): Ditto.
	(vect_create_cond_for_alias_checks): Ditto.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
	(vect_build_slp_tree_1): Ditto.
	(vect_supported_load_permutation_p): Ditto.
	(vect_analyze_slp_instance): Ditto.
	(vect_analyze_slp): Ditto.
	(vect_make_slp_decision): Ditto.
	(vect_detect_hybrid_slp): Ditto.
	(vect_bb_vectorization_profitable_p): Ditto.
	(vect_slp_analyze_bb_1): Ditto.
	(vect_update_slp_costs_according_to_vf): Ditto.
	(vect_get_mask_element): Ditto.
	(vect_transform_slp_perm_load): Ditto.
	(vect_schedule_slp_instance): Ditto.
	(vect_schedule_slp): Ditto.
	(vect_slp_transform_bb): Ditto.
	* profile.c (read_profile_edge_counts): Ditto.
	(compute_branch_probabilities): Ditto.
	* coverage.c (get_coverage_counts): Ditto.

2013-09-16  Diego Novillo  <dnovillo@google.com>

	* tree-core.h: Add missing comment lines from refactoring
	of tree.h.

2013-09-16  Jan Hubicka  <jh@suse.cz>

	* gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
	abstract functions; for static functions check the presence
	of body.

2013-09-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (fma): New.
	* config/aarch64/aarch64-simd.md
	(aarch64_mla_elt<mode>): New.
	(aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
	(aarch64_mls_elt<mode>): Likewise.
	(aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
	(aarch64_fma4_elt<mode>): Likewise.
	(aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
	(aarch64_fma4_elt_to_128v2df): Likewise.
	(aarch64_fma4_elt_to_64df): Likewise.
	(fnma<mode>4): Likewise.
	(aarch64_fnma4_elt<mode>): Likewise.
	(aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
	(aarch64_fnma4_elt_to_128v2df): Likewise.
	(aarch64_fnma4_elt_to_64df): Likewise.
	* config/aarch64/iterators.md (VDQSF): New.
	* config/aarch64/arm_neon.h
	(vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
	(vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.

2013-09-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
	(aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
	(aarch64_mul3_elt_to_128df): Likewise.
	(aarch64_mul3_elt_to_64v2df): Likewise.
	* config/aarch64/iterators.md (VEL): Also handle DFmode.
	(VMUL): New.
	(VMUL_CHANGE_NLANES) Likewise.
	(h_con): Likewise.
	(f): Likewise.
	* config/aarch64/arm_neon.h
	(vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.

2013-09-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h
	(vcvtx_high_f32_f64): Fix parameters.

2013-09-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha.c: Include tree-ssanames.h.

2013-09-16  Richard Biener  <rguenther@suse.de>

	* tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
	(dot_rdg_1): Handle control_dd.
	(create_edge_for_control_dependence): New function.
	(create_rdg_edges): Add control dependences if asked for.
	(build_rdg): Likewise.
	(generate_loops_for_partition): If there are not necessary
	control stmts remove all their dependencies.
	(collect_condition_stmts, rdg_flag_loop_exits): Remove.
	(distribute_loop): Pass on control dependences.
	(tree_loop_distribution): Compute control dependences and remove
	restriction on number of loop nodes.

2013-09-16  Jakub Jelinek  <jakub@redhat.com>

	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
	for internal calls.

2013-09-16  Richard Sandiford  <rdsandiford@googlemail.com>

	* cse.c (try_const_anchors): Punt on CC modes.

2013-09-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/vax/constraints.md (T): Add missing CONSTANT_P check.

2013-09-14  John David Anglin  <danglin@gcc.gnu.org>

	PR target/58382
	* config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
	calls to word_mode.

2013-09-14  Iain Sandoe  <iain@codesourcery.com>

	PR target/48094
	* config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
	seen.
	(darwin_objc1_section): Likewise.
	(darwin_file_end): Emit Image Info section when required.

2013-09-14  Jan Hubicka  <jh@suse.cz>

	* tree-into-ssa.c (gate_into_ssa): New.
	(pass_data_build_ssa): Use it.
	* cgraph.h (expand_thunk): Update prototype.
	* cgraphunit.c (analyze_function): Expand thunks early.
	(expand_thunk): Fix DECL_CONTEXT of reust_decl;
	build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
	set lowered flag; do not add new function.
	(assemble_thunks_and_aliases): Update.
	* tree-ssa.c (gate_init_datastructures): New gate.
	(pass_data_init_datastructures): Use it.

2013-09-14  Iain Sandoe  <iain@codesourcery.com>

	PR target/58269
	* config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
	xmm register set described in the psABI.

2013-09-13  Evgeny Gavrin <e.gavrin@samsung.com>

	* dwarf2out.c (should_emit_struct_debug): Add check
	for type_decl variable is not NULL.

2013-09-13  Jacek Caban  <jacek@codeweavers.com>

	* config.gcc: Use new winnt-c.c target hooks
	* config/t-winnt: New file
	* config/winnt-c.c: New file
	* doc/tm.texi.in: Document new hook
	* doc/tm.texi: Regenerated

2013-09-13  Jan Hubicka  <jh@suse.cz>

	PR middle-end/58094
	* ipa-inline.c (check_callers): New function.
	(check_caller_edge): Remove.
	(want_inline_function_to_all_callers_p): Also permit alises that are
	called dirrectly.
	(inline_to_all_callers): Terminate the walk when devirtualization
	introduce new calls.

2013-09-13  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (struct growth_data): Add node.
	(do_estimate_growth_1): Fix detection of recursion.

2013-09-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58392
	* tree-cfg.c (move_sese_region_to_fn): Rename loop variable
	to avoid shadowing of outer loop variable.  If
	saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
	replace_by_duplicate_decl simduid of loops that have it set and
	set dest_cfun->has_simduid_loops and/or
	dest_cfun->has_force_vect_loops.
	* omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
	instead of maybe_lookup_decl.
	* tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
	Use id->blocks_to_copy instead of blocks_to_copy.  Adjust recursive
	call.  Copy over force_vect and copy and remap simduid.  Set
	cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
	(copy_cfg_body): Remove blocks_to_copy argument.  Use
	id->blocks_to_copy instead of blocks_to_copy.  Adjust copy_loops
	caller.  Don't set cfun->has_simduid_loops and/or
	cfun->has_force_vect_loops here.
	(copy_body): Remove blocks_to_copy argument.  Adjust copy_cfg_body
	caller.
	(expand_call_inline, tree_function_versioning): Adjust copy_body
	callers.

2013-09-13  Martin Jambor  <mjambor@suse.cz>

	PR bootstrap/58388
	* ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
	the assert if the edge was a speculative one.

2013-09-13  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.h (known_dependences_p): Move here ...
	* tree-loop-distribution.c (known_dependences_p): ... from here.
	(dump_rdg_component, debug_rdg_component): Remove.
	(dump_rdg): Adjust.
	(generate_loops_for_partition): Use gimple_uid instead of
	relying on matching stmt visit order.
	(rdg_build_partitions): Take starting stmt vector.
	(ldist_gen): Merge into ...
	(distribute_loop): ... this function.  Do not compute starting
	vertices vector.
	* tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.

2013-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
	Set type attribute correctly. Set predicable_short_it attribute.
	(cmpsi_shiftsi): Remove %? from output template.

2013-09-13  Richard Biener  <rguenther@suse.de>

	* tree-loop-distribution.c (struct rdg_component,
	rdg_defs_used_in_other_loops_p, free_rdg_components,
	rdg_build_components): Remove.
	(stmts_from_loop): Do not record virtual PHIs.
	(generate_loops_for_partition): Skip virtual PHIs.
	(build_rdg_partition_for_component): Rename to ...
	(build_rdg_partition_for_vertex): ... this and adjust.
	(rdg_build_partitions): Take a vector of starting vertices
	instead of components.  Remove unnecessary leftover handling.
	(ldist_gen): Do not build components or record other stores.
	(distribute_loop): Do not distribute loops containing stmts
	with side-effects.

2013-09-13  Christian Bruel  <christian.bruel@st.com>

	PR target/58314
	* config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.

2013-09-13  Kai Tietz  <ktietz@redhat.com>

	* config.gcc: Separate cases for mingw and cygwin targets,
	and add 64-bit cygwin target case.

	* config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
	dll-export inline-functions.
	* config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.


2013-09-13  Jeff Law  <law@redhat.com>

	PR middle-end/58387
	Revert:
	2013-09-06  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
	edge implied equivalences into successor phis.

2013-09-12  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-virt.md: Change from | to \; for asm line
	separators.

2013-09-12  Brooks Moses  <bmoses@google.com>

	PR driver/42955
	* Makefile.in: Do not install driver binaries in $(target)/bin.

2013-09-12  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.opt (mrelax): New.
	* config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
	* config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.

	* config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
	between SP and FP.
	(rl78_expand_epilogue): Likewise.

2013-09-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/58335
	* lra-eliminations.c (remove_reg_equal_offset_note): New.
	(eliminate_regs_in_insn): Rewrite frame pointer to hard frame
	pointer elimination with using remove_reg_equal_offset_note.

2013-09-12  DJ Delorie  <dj@redhat.com>

	* config/msp430/: New port.
	* config.gcc (msp430): Added.
	* doc/invoke.texi: Document MSP430 options.
	* doc/install.texi: Document msp430-elf
	* doc/md.texi: Document msp430-elf
	* doc/contrib.texi: Document msp430-elf

	* cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
	PSImode.

2013-09-12  Martin Jambor  <mjambor@suse.cz>

	PR ipa/58389
	* ipa-prop.c (remove_described_reference): Give up if the edge in the
	reference descriptor is NULL.
	(ipa_edge_removal_hook): If owning a reference descriptor, set its
	edge to NULL.

2013-09-12  Andrew MacLeod  <amacleod@redhat.com>

	* tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
	(SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
	num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
	* tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
	make_temp_ssa_name): move to tree-ssanames.h
	* tree-ssa-alias.h: Move prototype.
	* tree-ssa.h: Include tree-ssanames.h.
	* tree-ssanames.c (FREE_SSANAMES): Move to here.
	* tree-ssanames.h: New.  Move items from tree-flow*.h
	* Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.

2013-09-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58404
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
	propagate non-invariant addresses into dereferences wrapped
	in component references.

2013-09-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58402
	* passes.def: Move pass_late_warn_uninitialized later.

2013-09-12  Andrew MacLeod  <amacleod@redhat.com>

	* tree-ssa.h: New.  Move content from tree-flow.h and
	tree-flow-inline.h.
	* tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
	Move prototypes belonging to tree-ssa.c.
	* tree-flow-inline.h (redirect_edge_var_map_def,
	redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
	tree-ssa.h.
	* gimple.h: Adjust prototypes.
	* tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
	to...
	* gimple.c (useless_type_conversion_p, types_compatible_p): Here.
	* tree.h: Move prototype to tree-ssa.h.
	* gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
	* Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
	* alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
	cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
	cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
	ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
	gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
	gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
	graphite-blocking.c, graphite-clast-to-gimple.c,
	graphite-dependences.c, graphite-interchange.c,
	graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
	graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
	ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
	ipa-reference.c, ipa-split.c, ipa-utils.c,
	loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
	lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
	passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
	tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
	tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
	tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
	tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
	tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
	tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
	tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
	tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
	tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
	tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
	value-prof.c, var-tracking.c,
	varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h

2013-09-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58396
	* tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
	(build_rdg): Take a loop-nest parameter, fix memleaks.
	(distribute_loop): Compute loop-nest here and pass it to build_rdg.

2013-09-12  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
	for SLM.

2013-09-12  Cameron McInally  <cameron.mcinally@nyu.edu>

	* doc/extend.texi: Fix errors in x86 FMA builtin naming.
	The FMA instruction names should have a 'v' prefix.

2013-09-12  Richard Biener  <rguenther@suse.de>

	* tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
	(dot_rdg): Use popen instead of system in optional code.
	(remaining_stmts, upstream_mem_writes): Remove global bitmaps.
	(already_processed_vertex_p): Adjust.
	(has_anti_or_output_dependence, predecessor_has_mem_write,
	mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
	rdg_flag_uses): Remove.
	(rdg_flag_vertex): Simplify.
	(rdg_flag_vertex_and_dependent): Rely on a correct RDG and
	remove recursion.
	(build_rdg_partition_for_component): Process the first vertex
	of a component only.
	(ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.

2013-09-12  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.

2013-09-11  DJ Delorie  <dj@redhat.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/rl78/predicates.md (rl78_cmp_operator_signed): New.
	(rl78_stack_based_mem): New.
	* config/rl78/constraints.md (Iv08): New.
	(Iv16): New.
	(Iv24): New.
	(Is09): New.
	(Is17): New.
	(Is25): New.
	(ISsi): New.
	(IShi): New.
	(ISqi): New.
	* config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
	(movhi): Likewise.
	(movsi): Change from expand to insn-and-split.
	(ashrsi3): Clobber AX.
	(lshrsi3): New.
	(ashlsi3): New.
	(cbranchsi4): New.
	* config/rl78/rl78.md (CC_REG): Fix.
	(addsi3): Allow memory and immediate operands.
	(addsi3_internal): Split into...
	(addsi3_internal_virt): ...new, and ...
	(addsi3_internal_real): ...new.
	(subsi): New.
	(subsi3_internal_virt): New.
	(subsi3_internal_real): New.
	(mulsi3): Add memory operand.
	(mulsi3_rl78): Likewise.
	(mulsi3_g13): Likewise.
	* config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
	(cbranchqi4_real): Add more constraint options.
	(cbranchhi4_real): Expand pattern.
	(cbranchhi4_real_signed): New.
	(cbranchhi4_real_inverted): New.
	(cbranchsi4_real_lt): New.
	(cbranchsi4_real_ge): New.
	(cbranchsi4_real_signed): New.
	(cbranchsi4_real): New.
	(peephole2): New.
	* config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
	constant shifts.
	(lshrsi3_virt): Likewise.
	(ashlsi3_virt): Likewise.
	(cbranchqi4_virt_signed): New.
	(cbranchhi4_virt_signed): New.
	(cbranchsi4_virt): New.
	* config/rl78/rl78.c: Whitespace fixes throughout.
	(move_elim_pass): New.
	(pass_data_rl78_move_elim): New.
	(pass_rl78_move_elim): New.
	(make_pass_rl78_move_elim): New.
	(rl78_devirt_info): Run devirt earlier.
	(rl78_move_elim_info): New.
	(rl78_asm_file_start): Register it.
	(rl78_split_movsi): New.
	(rl78_as_legitimate_address): Allow virtual base registers when
	appropriate.
	(rl78_addr_space_convert): Remove spurious debug stuff.
	(rl78_print_operand_1): Add z,s,S,r,E modifiers.
	(rl78_print_operand): More cases for not printing '#'.
	(rl78_expand_compare): Remove most of the logic.
	(content_memory): New.
	(clear_content_memory): New.
	(get_content_index): New.
	(get_content_name): New.
	(display_content_memory): New.
	(update_content): New.
	(record_content): New.
	(already_contains): New.
	(insn_ok_now): Re-recog insns with virtual registers.
	(add_postponed_content_update): New.
	(process_postponed_content_update): New.
	(gen_and_emit_move): New.
	(transcode_memory_rtx): Record new location content.
	Use gen_and_emit_move.
	(force_into_acc): New.
	(move_to_acc): Use gen_and_emit_move.
	(move_from_acc): Likewise.
	(move_acc_to_reg): Likewise.
	(move_to_x): Likewise.
	(move_to_hl): Likewise.
	(move_to_de): Likewise.
	(rl78_alloc_physical_registers_op1): Record location content.
	(has_constraint): New.
	(rl78_alloc_physical_registers_op2): Record location content.
	Optimize use of HL.
	(rl78_alloc_physical_registers_ro1): Likewise.
	(rl78_alloc_physical_registers_cmp): Likewise.
	(rl78_alloc_physical_registers_umul): Likewise.
	(rl78_alloc_address_registers_macax): New.
	(rl78_alloc_physical_registers): Initialize and set location
	content memory as needed.
	(rl78_reorg): Make sure split2 is called.
	(rl78_rtx_costs): New.

2013-09-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
	for (not (neg ...)) and (neg (not ...)) cases.

2013-09-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/58377
	* passes.def: Split critical edges before late uninit warning passes.
	* tree-cfg.c (pass_split_crit_edges): Implement clone method.

2013-09-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58385
	* fold-const.c (build_range_check): If both low and high are NULL,
	use omit_one_operand_loc to preserve exp side-effects.

2013-09-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.

2013-09-11  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
	dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
	dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
	create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
	stmts_from_loop, known_dependences_p, build_empty_rdg,
	build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
	* tree-loop-distribution.c: ... here.
	* tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
	RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
	RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
	struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
	* tree-loop-distribution.c: ... here.
	* tree-loop-distribution.c: Include gimple-pretty-print.h.
	(struct partition_s): Add loops member.
	(partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
	rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
	build_rdg_partition_for_component, rdg_build_partitions): Adjust.

2013-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Sergey Lega  <sergey.s.lega@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/constraints.md (k): New.
	(Yk): Ditto.
	* config/i386/i386.c (const regclass_map): Add new mask registers.
	(dbx_register_map): Ditto.
	(dbx64_register_map): Ditto.
	(svr4_dbx_register_map): Ditto.
	(ix86_conditional_register_usage): Squash mask registers if AVX512F is
	disabled.
	(ix86_preferred_reload_class): Disable constants for mask registers.
	(ix86_secondary_reload): Do spill of mask register using 32-bit insn.
	(ix86_hard_regno_mode_ok): Support new mask registers.
	(x86_order_regs_for_local_alloc): Ditto.
	* config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
	(FIXED_REGISTERS): Add new mask registers.
	(CALL_USED_REGISTERS): Ditto.
	(REG_ALLOC_ORDER): Ditto.
	(VALID_MASK_REG_MODE): New.
	(FIRST_MASK_REG): Ditto.
	(LAST_MASK_REG): Ditto.
	(reg_class): Add MASK_EVEX_REGS, MASK_REGS.
	(MAYBE_MASK_CLASS_P): New.
	(REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
	(REG_CLASS_CONTENTS): Ditto.
	(MASK_REGNO_P): New.
	(ANY_MASK_REG_P): Ditto.
	(HI_REGISTER_NAMES): Add new mask registers.
	* config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
	MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
	mask registers.
	(attribute "type"): Add mskmov, msklog.
	(attribute "length_immediate"): Support them.
	(attribute "memory"): Ditto.
	(attribute "prefix_0f"): Ditto.
	(*movhi_internal): Support new mask registers.
	(*movqi_internal): Ditto.
	(define_split): Split out clobber pattern is a logic
	insn on mask registers.
	(*k<logic><mode>): New.
	(*andhi_1): Extend to support mask regs.
	(*andqi_1): Extend to support mask regs.
	(kandn<mode>): New.
	(define_split): Split and-not to and and not if operands
	are not mask regs.
	(*<code><mode>_1): Separate HI mode to new pattern...
	(*<code>hi_1): This.
	(*<code>qi_1): Extend to support mask regs.
	(kxnor<mode>): New.
	(kortestzhi): Ditto.
	(kortestchi): Ditto.
	(kunpckhi): Ditto.
	(*one_cmpl<mode>2_1): Remove HImode and handle it...
	(*one_cmplhi2_1): ...Here, now with mask registers support.
	(*one_cmplqi2_1): Support new mask registers.
	(HI/QImode arithmetics splitter): Don't split if mask registers
	are used.
	(HI/QImode not splitter): Ditto.
	* config/i386/predicated.md (mask_reg_operand): New.
	(general_reg_operand): Ditto.

2013-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>

	* doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
	* doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.

2013-09-10  Jeff Law  <law@redhat.com>

	PR tree-optimization/58380
	* tree-ssa-threadupdate.c (thread_block): Recognize another case
	of threading through a buried loop header.

	* tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
	return value for single successor case.

2013-09-10  Jan Hubicka  <jh@suse.cz>

	* ipa-devirt.c (ipa_devirt): Enable with LTO.

2013-09-10  Richard Earnshaw  <rearnsha@arm.com>

	PR target/58361
	* arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
	support conditional execution.
	(combine_vcvt_f64_<FCVTI32typename>): Likewise.

2013-09-10  Vladimir Makarov  <vmakarov@redhat.com>

	* lra.c (lra): Clear lra_optional_reload_pseudos before every
	constraint pass.
	* lra-constraints.c (curr_insn_transform): Switch on optional reloads.
	Check destination too to check move insn.
	(undo_optional_reloads): Add check that the original peudo did not
	changed its allocation and the optional reload was inherited on last
	inheritance pass.  Break loop after deciding to keep optional reload.
	(lra_undo_inheritance): Add check that inherited pseudo still in
	memory.

2013-09-10  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (generic_sched): New.
	* config/aarch64/aarch64-generic.md (load): Make conditional
	on generic_sched attribute.
	(nonload): Likewise.

2013-09-10  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c: Include ipa-utils.h.
	(compute_ltrans_boundary): Also add possible targets into the boundary.

2013-09-10  Jan Hubicka  <jh@suse.cz>

	* gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
	VAR_DECL of vtable rather than full expression.

2013-09-10  Jan Hubicka  <jh@suse.cz>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	* cgraphunit.c (analyze_functions): Save input_location, set it
	to UNKNOWN_LOCATION and restore it at the end.

2013-09-10  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (propagate_constants_topo): Do not ignore SCC
	represented by a thunk.

2013-09-10  Jeff Law  <law@redhat.com>

	PR tree-optimization/58343
	* tree-ssa-threadupdate.c (thread_block): Identify and disable
	jump threading requests through loop headers buried in the middle
	of a jump threading path.

	* tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
	in return value/type.

2013-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/58365
	* cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
	resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
	it differs.

2013-09-10  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.h (build_rdg): Drop all parameters but loop.
	* tree-data-ref.c (create_rdg_vertices): Collect all data
	references, signal failure to the caller, use data-ref API.
	(build_rdg): Compute data references only once.  Maintain lifetime
	of data references and data dependences from within RDG.
	(free_rdg): Free dependence relations.
	* tree-loop-distribution.c (rdg_flag_uses): Drop weird code
	inventing extra dependences.
	(distribute_loop): Update for RDG API changes.

2013-09-10  Kai Tietz  <ktietz@redhat.com>

	* doc/invoke.texi (fms-extensions): Document changed
	behavior for ms-abi targets.
	* config/i386/i386.c (ix86_option_override_internal):
	Set default value of option -fms-extension for ms-abi targets.

2013-09-10  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>

	* config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.

2013-09-10  Alan Modra  <amodra@gmail.com>

	PR target/58330
	* config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.

2013-09-10  Alan Modra  <amodra@gmail.com>

	* config/rs6000/predicates.md (add_cint_operand): New.
	(reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
	* config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
	using add_cint_operand.
	(largetoc_high_plus_aix): Likewise.

2013-09-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58364
	* tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
	BOOLEAN_TYPE, only invert in_p and continue with arg0 if
	the current range can't be an unconditional true or false.

2013-09-09  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.

2013-09-09  Uros Bizjak  <ubizjak@gmail.com>

	* ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.

2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/43452
	* doc/invoke.texi (-Wdelete-incomplete): Document it.

2013-09-09  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
	NO_REGS for immediate that can't be moved directly into FP_REGS.

2013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
	comparison with negated operand.
	* config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
	RTL form.

2013-09-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/58326
	* cfgloopmanip.c (fix_bb_placements): When fixing the placement
	of a subloop record all its block as affecting loop-closed SSA form.

2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
	of an rtx/bitpos pair.
	(store_fixed_bit_field): Update accordingly.

2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
	GEN_INT.
	* builtins.c (expand_errno_check): Likewise.
	* dwarf2cfi.c (init_return_column_size): Likewise.
	* except.c (sjlj_mark_call_sites): Likewise.
	* expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
	* lra-constraints.c (emit_inc): Likewise.
	* ree.c (combine_set_extension): Likewise.
	* regmove.c (fixup_match_2): Likewise.
	* reload1.c (inc_for_reload): Likewise.

2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c (simplify_set, expand_field_assignment, extract_left_shift)
	(force_to_mode, simplify_shift_const_1, simplify_comparison):
	Use gen_int_mode with the mode of the associated simplify_* call.
	* explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
	* expmed.c (expand_shift_1): Likewise.
	* function.c (instantiate_virtual_regs_in_insn): Likewise.
	* loop-iv.c (iv_number_of_iterations): Likewise.
	* loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
	* simplify-rtx.c (simplify_binary_operation_1): Likewise.

2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* asan.c (asan_clear_shadow): Use gen_int_mode with the mode
	of the associated expand_* call.
	(asan_emit_stack_protection): Likewise.
	* builtins.c (round_trampoline_addr): Likewise.
	* explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
	* expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
	(emit_store_flag): Likewise.
	* expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
	(emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
	Likewise.
	* function.c (instantiate_virtual_regs_in_insn): Likewise.
	* ifcvt.c (noce_try_store_flag_constants): Likewise.
	* loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
	* modulo-sched.c (generate_prolog_epilog): Likewise.
	* optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
	(expand_ctz, expand_ffs, expand_unop): Likewise.

2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
	of the associated gen_rtx_* call.
	* caller-save.c (init_caller_save): Likewise.
	* combine.c (find_split_point, make_extraction): Likewise.
	(make_compound_operation): Likewise.
	* dwarf2out.c (mem_loc_descriptor): Likewise.
	* explow.c (plus_constant, probe_stack_range): Likewise.
	* expmed.c (expand_mult_const): Likewise.
	* expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
	* reload1.c (init_reload): Likewise.
	* valtrack.c (cleanup_auto_inc_dec): Likewise.
	* var-tracking.c (adjust_mems): Likewise.
	* modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
	rather than gen_rtx_fmt_ee.

2013-09-09  Jan Hubicka  <jh@suse.cz>

	PR middle-end/58294
	* value-prof.c (gimple_ic): Copy also abnormal edges.

2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* asan.c (asan_shadow_cst): Use gen_int_mode.

2013-09-08  Jan Hubicka  <jh@suse.cz>

	* ipa-profile.c: Add toplevel comment.
	(ipa_propagate_frequency_1): Be more conservative when profile is read.
	(contains_hot_call_p): New function.
	(ipa_propagate_frequency): Set frequencies based on counts when
	profile is read.
	* predict.c (compute_function_frequency): Use PROFILE_READ gueard for
	profile; do not tamper with profile after inlining if it is read.

2013-09-08  Jan Hubicka  <jh@suse.cz>

	* ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
	speculative edges.

2013-09-08  Jan Hubicka  <jh@suse.cz>

	* ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
	summary generation.

2013-09-08  Jeff Law  <law@redhat.com>

	PR bootstrap/58340
	* tree-ssa-threadedge.c (thread_across_edge): Fix initialization
	of 'found'.

2013-09-08  Andi Kleen  <ak@linux.intel.com>

	* tree-inline.c (estimate_num_insns): Limit asm cost to 1000.

2013-09-08  Jan Hubicka  <jh@suse.cz>

	* ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.

2013-09-08  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c (update_equiv_regs): Only call set_paradoxical_subreg
	for non-debug insns.
	* lra.c (new_insn_reg): Take the containing insn as a parameter.
	Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
	(collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
	accordingly.

2013-09-08  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
	targets and devirtualize to BUILT_IN_UNREACHABLE.
	* timevar.def (TV_IPA_UNREACHABLE): New timevar.
	* ipa.c (walk_polymorphic_call_targets): New function.
	(symtab_remove_unreachable_nodes): Use it; do not keep all virtual
	functions; use the new timevar.
	* ipa-devirt.c (maybe_record_node): Do not insert static nodes that
	was removed from the program.
	(record_binfo): If BINFO corresponds to an anonymous namespace, we may
	not consider it in the walk when its vtable is dead.
	(possible_polymorphic_call_targets_1): Pass anonymous flag to
	record_binfo.
	(devirt_variable_node_removal_hook): New function.
	(possible_polymorphic_call_targets): Also register
	devirt_variable_node_removal_hook.
	(ipa_devirt): Do not do non-speculative devirtualization.
	(gate_ipa_devirt): One execute if devirtualizing speculatively.

2013-09-08  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (varpool_node_hook, varpool_node_hook_list,
	varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
	varpool_remove_variable_insertion_hook): Declare.
	* varpool.c (varpool_node_hook_list): New structure.
	(first_varpool_node_removal_hook,
	first_varpool_variable_insertion_hook): New variables.
	(varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
	varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
	varpool_remove_variable_insertion_hook,
	varpool_call_variable_insertion_hooks): New functions.
	(varpool_remove_node): Use it.

2013-09-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54941
	* diagnostic.c (diagnostic_build_prefix): When s.file is
	"<built-in>" don't output line and column numbers.

2013-09-06  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (expand_thunk): Get body before touching arguments.
	* lto-streamer-out.c: Stream thunks, too.
	* lto-streamer-in.c (input_function): Pop cfun here
	(lto_read_body): Instead of here.

2013-09-06  Caroline Tice  <cmtice@google.com>

	* doc/install.texi: Add documentation for the --enable-vtable-verify
	and the --disable-libvtv configure options.

2013-09-06  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
	edge implied equivalences into successor phis.

2013-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>

	* resource.c (mark_referenced_resources): Handle COND_EXEC.

2013-09-06  Claudiu Zissulescu  <claziss@synopsys.com>

	* resource.c (mark_target_live_regs): Compute resources taking
	into account if a call is predicated or not.

2013-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* toplev.c (output_stack_usage): Be prepared for suffixes created by
	the compiler in the function names.

2013-09-06  Jan Hubicka  <jh@suse.cz>

	PR middle-end/58094
	* ipa-inline.c (has_caller_p): New function.
	(want_inline_function_to_all_callers_p): Use it.
	(sum_callers, inline_to_all_callers): Break out from ...
	(ipa_inline): ... here.

2013-09-06  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
	only when AVX is enabled.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md
	(*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
	is fpsimd_<load/store>2.
	(load_pair<mode>): Likewise.
	(store_pair<mode>): Likewise.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/types.md (type): Add "mrs" type.
	* config/aarch64/aarch64.md
	(aarch64_load_tp_hard): Make type "mrs".
	* config/arm/arm.md
	(load_tp_hard): Make type "mrs".
	* config/arm/cortex-a15.md: Update with new attributes.
	* config/arm/cortex-a5.md: Update with new attributes.
	* config/arm/cortex-a53.md: Update with new attributes.
	* config/arm/cortex-a7.md: Update with new attributes.
	* config/arm/cortex-a8.md: Update with new attributes.
	* config/arm/cortex-a9.md: Update with new attributes.
	* config/arm/cortex-m4.md: Update with new attributes.
	* config/arm/cortex-r4.md: Update with new attributes.
	* config/arm/fa526.md: Update with new attributes.
	* config/arm/fa606te.md: Update with new attributes.
	* config/arm/fa626te.md: Update with new attributes.
	* config/arm/fa726te.md: Update with new attributes.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md
	(*movti_aarch64): Use "multiple" for type where v8type is "move2".
	(*movtf_aarch64): Likewise.
	* config/arm/arm.md
	(thumb1_movdi_insn): Use "multiple" for type where more than one
	instruction is used for a move.
	(*arm32_movhf): Likewise.
	(*thumb_movdf_insn): Likewise.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/types.md (type): Rename fcpys to fmov.
	* config/arm/vfp.md
	(*arm_movsi_vfp): Rename type fcpys as fmov.
	(*thumb2_movsi_vfp): Likewise
	(*movhf_vfp_neon): Likewise
	(*movhf_vfp): Likewise
	(*movsf_vfp): Likewise
	(*thumb2_movsf_vfp): Likewise
	(*movsfcc_vfp): Likewise
	(*thumb2_movsfcc_vfp): Likewise
	* config/aarch64/aarch64-simd.md
	(move_lo_quad_<mode>): Replace type mov_reg with fmovs.
	* config/aarch64/aarch64.md
	(*movsi_aarch64): Replace type mov_reg with fmovs.
	(*movdi_aarch64): Likewise
	(*movsf_aarch64): Likewise
	(*movdf_aarch64): Likewise
	* config/arm/arm.c
	(cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
	* config/arm/iwmmxt.md
	(*iwmmxt_movsi_insn): Rename type fcpys as fmov.
	* config/arm/arm1020e.md: Update with new attributes.
	* config/arm/cortex-a15-neon.md: Update with new attributes.
	* config/arm/cortex-a5.md: Update with new attributes.
	* config/arm/cortex-a53.md: Update with new attributes.
	* config/arm/cortex-a7.md: Update with new attributes.
	* config/arm/cortex-a8-neon.md: Update with new attributes.
	* config/arm/cortex-a9.md: Update with new attributes.
	* config/arm/cortex-m4-fpu.md: Update with new attributes.
	* config/arm/cortex-r4f.md: Update with new attributes.
	* config/arm/marvell-pj4.md: Update with new attributes.
	* config/arm/vfp11.md: Update with new attributes.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md
	(*madd<mode>): Fix type attribute.
	(*maddsi_uxtw): Likewise.
	(*msub<mode>): Likewise.
	(*msubsi_uxtw): Likewise.
	(<su_optab>maddsidi4): Likewise.
	(<su_optab>msubsidi4): Likewise.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
	* config/arm/arm.md (core_cycles): Remove fdiv.
	* config/arm/vfp.md:
	(*sqrtsf2_vfp): Update for attribute changes.
	(*sqrtdf2_vfp): Likewise.
	* config/aarch64/aarch64.md:
	(sqrt<mode>2): Update for attribute changes.
	* config/arm/arm1020e.md: Update with new attributes.
	* config/arm/cortex-a15-neon.md: Update with new attributes.
	* config/arm/cortex-a5.md: Update with new attributes.
	* config/arm/cortex-a53.md: Update with new attributes.
	* config/arm/cortex-a7.md: Update with new attributes.
	* config/arm/cortex-a8-neon.md: Update with new attributes.
	* config/arm/cortex-a9.md: Update with new attributes.
	* config/arm/cortex-m4-fpu.md: Update with new attributes.
	* config/arm/cortex-r4f.md: Update with new attributes.
	* config/arm/marvell-pj4.md: Update with new attributes.
	* config/arm/vfp11.md: Update with new attributes.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/types.md
	(type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
	* config/aarch64/aarch64.md
	(l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
	new attributes.
	(fix_trunc<GPF:mode><GPI:mode>2): Likewise.
	(fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
	(float<GPI:mode><GPF:mode>2): Likewise.
	* config/arm/vfp.md
	(*truncsisf2_vfp): Update with new attributes.
	(*truncsidf2_vfp): Likewise.
	(fixuns_truncsfsi2): Likewise.
	(fixuns_truncdfsi2): Likewise.
	(*floatsisf2_vfp): Likewise.
	(*floatsidf2_vfp): Likewise.
	(floatunssisf2): Likewise.
	(floatunssidf2): Likewise.
	(*combine_vcvt_f32_<FCVTI32typename>): Likewise.
	(*combine_vcvt_f64_<FCVTI32typename>): Likewise.
	* config/arm/arm1020e.md: Update with new attributes.
	* config/arm/cortex-a15-neon.md: Update with new attributes.
	* config/arm/cortex-a5.md: Update with new attributes.
	* config/arm/cortex-a53.md: Update with new attributes.
	* config/arm/cortex-a7.md: Update with new attributes.
	* config/arm/cortex-a8-neon.md: Update with new attributes.
	* config/arm/cortex-a9.md: Update with new attributes.
	* config/arm/cortex-m4-fpu.md: Update with new attributes.
	* config/arm/cortex-r4f.md: Update with new attributes.
	* config/arm/marvell-pj4.md: Update with new attributes.
	* config/arm/vfp11.md: Update with new attributes.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h
	(vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
	(vqtbx<1,2,3,4><q>_s8): Likewise.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
	* config/arm/arm-fixed.md: Add type attribute to all insn patterns.
	(add<mode>3): Add type attribute.
	(add<mode>3): Likewise.
	(usadd<mode>3): Likewise.
	(ssadd<mode>3): Likewise.
	(sub<mode>3): Likewise.
	(sub<mode>3): Likewise.
	(ussub<mode>3): Likewise.
	(sssub<mode>3): Likewise.
	(ssmulsa3): Likewise.
	(usmulusa3): Likewise.
	(arm_usatsihi): Likewise.
	* config/arm/vfp.md
	(*movdi_vfp): Add types for all instructions.
	(*movdi_vfp_cortexa8): Likewise.
	(*movhf_vfp_neon): Likewise.
	(*movhf_vfp): Likewise.
	(*movdf_vfp): Likewise.
	(*thumb2_movdf_vfp): Likewise.
	(*thumb2_movdfcc_vfp): Likewise.
	* config/arm/arm.md: Add type attribute to all insn patterns.
	(*thumb1_adddi3): Add type attribute.
	(*arm_adddi3): Likewise.
	(*adddi_sesidi_di): Likewise.
	(*adddi_zesidi_di): Likewise.
	(*thumb1_addsi3): Likewise.
	(addsi3_compare0): Likewise.
	(*addsi3_compare0_scratch): Likewise.
	(*compare_negsi_si): Likewise.
	(cmpsi2_addneg): Likewise.
	(*addsi3_carryin_<optab>): Likewise.
	(*addsi3_carryin_alt2_<optab>): Likewise.
	(*addsi3_carryin_clobercc_<optab>): Likewise.
	(*subsi3_carryin): Likewise.
	(*subsi3_carryin_const): Likewise.
	(*subsi3_carryin_compare): Likewise.
	(*subsi3_carryin_compare_const): Likewise.
	(*arm_subdi3): Likewise.
	(*thumb_subdi3): Likewise.
	(*subdi_di_zesidi): Likewise.
	(*subdi_di_sesidi): Likewise.
	(*subdi_zesidi_di): Likewise.
	(*subdi_sesidi_di): Likewise.
	(*subdi_zesidi_ze): Likewise.
	(thumb1_subsi3_insn): Likewise.
	(*arm_subsi3_insn): Likewise.
	(*anddi3_insn): Likewise.
	(*anddi_zesidi_di): Likewise.
	(*anddi_sesdi_di): Likewise.
	(*ne_zeroextracts): Likewise.
	(*ne_zeroextracts): Likewise.
	(*ite_ne_zeroextr): Likewise.
	(*ite_ne_zeroextr): Likewise.
	(*anddi_notdi_di): Likewise.
	(*anddi_notzesidi): Likewise.
	(*anddi_notsesidi): Likewise.
	(andsi_notsi_si): Likewise.
	(thumb1_bicsi3): Likewise.
	(*iordi3_insn): Likewise.
	(*iordi_zesidi_di): Likewise.
	(*iordi_sesidi_di): Likewise.
	(*thumb1_iorsi3_insn): Likewise.
	(*xordi3_insn): Likewise.
	(*xordi_zesidi_di): Likewise.
	(*xordi_sesidi_di): Likewise.
	(*arm_xorsi3): Likewise.
	(*andsi_iorsi3_no): Likewise.
	(*smax_0): Likewise.
	(*smax_m1): Likewise.
	(*arm_smax_insn): Likewise.
	(*smin_0): Likewise.
	(*arm_smin_insn): Likewise.
	(*arm_umaxsi3): Likewise.
	(*arm_uminsi3): Likewise.
	(*minmax_arithsi): Likewise.
	(*minmax_arithsi_): Likewise.
	(*satsi_<SAT:code>): Likewise.
	(arm_ashldi3_1bit): Likewise.
	(arm_ashrdi3_1bit): Likewise.
	(arm_lshrdi3_1bit): Likewise.
	(*arm_negdi2): Likewise.
	(*thumb1_negdi2): Likewise.
	(*arm_negsi2): Likewise.
	(*thumb1_negsi2): Likewise.
	(*negdi_extendsid): Likewise.
	(*negdi_zero_extend): Likewise.
	(*arm_abssi2): Likewise.
	(*thumb1_abssi2): Likewise.
	(*arm_neg_abssi2): Likewise.
	(*thumb1_neg_abss): Likewise.
	(one_cmpldi2): Likewise.
	(extend<mode>di2): Likewise.
	(*compareqi_eq0): Likewise.
	(*arm_extendhisi2addsi): Likewise.
	(*arm_movdi): Likewise.
	(*thumb1_movdi_insn): Likewise.
	(*arm_movt): Likewise.
	(*thumb1_movsi_insn): Likewise.
	(pic_add_dot_plus_four): Likewise.
	(pic_add_dot_plus_eight): Likewise.
	(tls_load_dot_plus_eight): Likewise.
	(*thumb1_movhi_insn): Likewise.
	(*thumb1_movsf_insn): Likewise.
	(*movdf_soft_insn): Likewise.
	(*thumb_movdf_insn): Likewise.
	(cbranchsi4_insn): Likewise.
	(cbranchsi4_scratch): Likewise.
	(*negated_cbranchsi4): Likewise.
	(*tbit_cbranch): Likewise.
	(*tlobits_cbranch): Likewise.
	(*tstsi3_cbranch): Likewise.
	(*cbranchne_decr1): Likewise.
	(*addsi3_cbranch): Likewise.
	(*addsi3_cbranch_scratch): Likewise.
	(*arm_cmpdi_insn): Likewise.
	(*arm_cmpdi_unsig): Likewise.
	(*arm_cmpdi_zero): Likewise.
	(*thumb_cmpdi_zero): Likewise.
	(*deleted_compare): Likewise.
	(*mov_scc): Likewise.
	(*mov_negscc): Likewise.
	(*mov_notscc): Likewise.
	(*cstoresi_eq0_thumb1_insn): Likewise.
	(cstoresi_nltu_thumb1): Likewise.
	(cstoresi_ltu_thu): Likewise.
	(thumb1_addsi3_addgeu): Likewise.
	(*arm_jump): Likewise.
	(*thumb_jump): Likewise.
	(*check_arch2): Likewise.
	(arm_casesi_internal): Likewise.
	(thumb1_casesi_dispatch): Likewise.
	(*arm_indirect_jump): Likewise.
	(*thumb1_indirect_jump): Likewise.
	(nop): Likewise.
	(*and_scc): Likewise.
	(*ior_scc): Likewise.
	(*compare_scc): Likewise.
	(*cond_move): Likewise.
	(*cond_arith): Likewise.
	(*cond_sub): Likewise.
	(*cmp_ite0): Likewise.
	(*cmp_ite1): Likewise.
	(*cmp_and): Likewise.
	(*cmp_ior): Likewise.
	(*ior_scc_scc): Likewise.
	(*ior_scc_scc_cmp): Likewise.
	(*and_scc_scc): Likewise.
	(*and_scc_scc_cmp): Likewise.
	(*and_scc_scc_nod): Likewise.
	(*negscc): Likewise.
	(movcond_addsi): Likewise.
	(movcond): Likewise.
	(*ifcompare_plus_move): Likewise.
	(*if_plus_move): Likewise.
	(*ifcompare_move_plus): Likewise.
	(*if_move_plus): Likewise.
	(*ifcompare_arith_arith): Likewise.
	(*if_arith_arith): Likewise.
	(*ifcompare_arith_move): Likewise.
	(*if_arith_move): Likewise.
	(*ifcompare_move_arith): Likewise.
	(*if_move_arith): Likewise.
	(*ifcompare_move_not): Likewise.
	(*if_move_not): Likewise.
	(*ifcompare_not_move): Likewise.
	(*if_not_move): Likewise.
	(*ifcompare_shift_move): Likewise.
	(*if_shift_move): Likewise.
	(*ifcompare_move_shift): Likewise.
	(*if_move_shift): Likewise.
	(*ifcompare_shift_shift): Likewise.
	(*ifcompare_not_arith): Likewise.
	(*ifcompare_arith_not): Likewise.
	(*if_arith_not): Likewise.
	(*ifcompare_neg_move): Likewise.
	(*if_neg_move): Likewise.
	(*ifcompare_move_neg): Likewise.
	(*if_move_neg): Likewise.
	(prologue_thumb1_interwork): Likewise.
	(*cond_move_not): Likewise.
	(*sign_extract_onebit): Likewise.
	(*not_signextract_onebit): Likewise.
	(stack_tie): Likewise.
	(align_4): Likewise.
	(align_8): Likewise.
	(consttable_end): Likewise.
	(consttable_1): Likewise.
	(consttable_2): Likewise.
	(consttable_4): Likewise.
	(consttable_8): Likewise.
	(consttable_16): Likewise.
	(*thumb1_tablejump): Likewise.
	(prefetch): Likewise.
	(force_register_use): Likewise.
	(thumb_eh_return): Likewise.
	(load_tp_hard): Likewise.
	(load_tp_soft): Likewise.
	(tlscall): Likewise.
	(*arm_movtas_ze): Likewise.
	(*arm_rev): Likewise.
	(*arm_revsh): Likewise.
	(*arm_rev16): Likewise.
	* config/arm/thumb2.md
	(*thumb2_smaxsi3): Likewise.
	(*thumb2_sminsi3): Likewise.
	(*thumb32_umaxsi3): Likewise.
	(*thumb2_uminsi3): Likewise.
	(*thumb2_negdi2): Likewise.
	(*thumb2_abssi2): Likewise.
	(*thumb2_neg_abss): Likewise.
	(*thumb2_movsi_insn): Likewise.
	(tls_load_dot_plus_four): Likewise.
	(*thumb2_movhi_insn): Likewise.
	(*thumb2_mov_scc): Likewise.
	(*thumb2_mov_negs): Likewise.
	(*thumb2_mov_negs): Likewise.
	(*thumb2_mov_nots): Likewise.
	(*thumb2_mov_nots): Likewise.
	(*thumb2_movsicc_): Likewise.
	(*thumb2_movsfcc_soft_insn): Likewise.
	(*thumb2_indirect_jump): Likewise.
	(*thumb2_and_scc): Likewise.
	(*thumb2_ior_scc): Likewise.
	(*thumb2_ior_scc_strict_it): Likewise.
	(*thumb2_cond_move): Likewise.
	(*thumb2_cond_arith): Likewise.
	(*thumb2_cond_ari): Likewise.
	(*thumb2_cond_sub): Likewise.
	(*thumb2_negscc): Likewise.
	(*thumb2_movcond): Likewise.
	(thumb2_casesi_internal): Likewise.
	(thumb2_casesi_internal_pic): Likewise.
	(*thumb2_alusi3_short): Likewise.
	(*thumb2_mov<mode>_shortim): Likewise.
	(*thumb2_addsi_short): Likewise.
	(*thumb2_subsi_short): Likewise.
	(thumb2_addsi3_compare0): Likewise.
	(*thumb2_cbz): Likewise.
	(*thumb2_cbnz): Likewise.
	(*thumb2_one_cmplsi2_short): Likewise.
	(*thumb2_negsi2_short): Likewise.
	(*orsi_notsi_si): Likewise.
	* config/arm/arm1020e.md: Update with new attributes.
	* config/arm/arm1026ejs.md: Update with new attributes.
	* config/arm/arm1136jfs.md: Update with new attributes.
	* config/arm/arm926ejs.md: Update with new attributes.
	* config/arm/cortex-a15.md: Update with new attributes.
	* config/arm/cortex-a5.md: Update with new attributes.
	* config/arm/cortex-a53.md: Update with new attributes.
	* config/arm/cortex-a7.md: Update with new attributes.
	* config/arm/cortex-a8.md: Update with new attributes.
	* config/arm/cortex-a9.md: Update with new attributes.
	* config/arm/cortex-m4.md: Update with new attributes.
	* config/arm/cortex-r4.md: Update with new attributes.
	* config/arm/fa526.md: Update with new attributes.
	* config/arm/fa606te.md: Update with new attributes.
	* config/arm/fa626te.md: Update with new attributes.
	* config/arm/fa726te.md: Update with new attributes.

2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
	<vwx> iterator to ensure correct register choice.
	(aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
	(aarch64_sqdmull_n<mode>): Likewise.
	(aarch64_sqdmull2_n<mode>_internal): Likewise.
	* config/aarch64/arm_neon.h
	(vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
	(vml<as><q>_n_<su>16): Likewise.
	(vml<as>l_high_lane<q>_<su>16): Likewise.
	(vml<as>l_high_n_<su>16): Likewise.
	(vml<as>l_lane<q>_<su>16): Likewise.
	(vml<as>l_n_<su>16): Likewise.
	(vmul<q>_lane<q>_<su>16): Likewise.
	(vmul<q>_n_<su>16): Likewise.
	(vmull_lane<q>_<su>16): Likewise.
	(vmull_n_<su>16): Likewise.
	(vmull_high_lane<q>_<su>16): Likewise.
	(vmull_high_n_<su>16): Likewise.
	(vqrdmulh<q>_n_s16): Likewise.

2013-09-06  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
	have the correct lane parameter.

2013-09-06  Richard Biener <rguenther@suse.de>

	* cfganal.c (control_dependences::~control_dependences):
	Properly free all of the vector.

2013-09-06  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/58269
	* config/i386/i386.c (ix86_conditional_register_usage):
	Proper initialize extended SSE registers.

2013-09-06  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/58311
	* ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.

2013-09-06  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (tree-sra.o): Update dependencies.
	* tree-sra.c: Include ipa-utils.h
	(scan_function): Use recursive_call_p.
	(has_caller_p): New function.
	(cgraph_for_node_and_aliases): Count also callers of aliases.

2013-09-06  Jan Hubicka  <jh@suse.cz>

	PR middle-end/58094
	* cgraph.h (symtab_semantically_equivalent_p): Declare.
	* tree-tailcall.c: Include ipa-utils.h.
	(find_tail_calls): Use it.
	* ipa-pure-const.c (check_call): Likewise.
	* ipa-utils.c (recursive_call_p): New function.
	* ipa-utils.h (recursive_call_p): Dclare.
	* symtab.c (symtab_nonoverwritable_alias): Fix formatting.
	(symtab_semantically_equivalent_p): New function.
	* Makefile.in (tree-tailcall.o): Update dependencies.

2013-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
	non-inlinable part.

2013-09-06  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (lto_global_var_decls): Remove.
	* Makefile.in (OBJS): Remove lto-symtab.o.
	(lto-symtab.o): Remove.
	(GTFILES): Remove lto-symtab.c
	* lto-symtab.c: Move to lto/

2013-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
	(UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
	(UNSPEC_FPINT_RINT): New constant definitions.
	(FPINT, fpint_name, fpint_roundingmode): New integer iterator
	definition with 2 attributes.
	("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
	("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
	definitions.

2013-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
	("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
	Set the mnemonic attribute to "bcr_flush".  Set the "z196prop"
	attribute to "z196_alone".
	* config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
	"zEC12_simple".

2013-09-06  Richard Biener  <rguenther@suse.de>

	* basic-block.h (class control_dependences): New.
	* tree-ssa-dce.c (control_dependence_map): Remove.
	(cd): New global.
	(EXECUTE_IF_CONTROL_DEPENDENT): Remove.
	(set_control_dependence_map_bit, clear_control_dependence_bitmap,
	find_pdom, find_control_dependence, find_all_control_dependences):
	Move to cfganal.c.
	(mark_control_dependent_edges_necessary,
	find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
	tree_dce_done, perform_tree_ssa_dce): Adjust.
	* cfganal.c (set_control_dependence_map_bit,
	clear_control_dependence_bitmap, find_pdom, find_control_dependence,
	find_all_control_dependences): Move from tree-ssa-dce.c and
	implement as methods of control_dependences class.
	(control_dependences::control_dependences): New.
	(control_dependences::~control_dependences): Likewise.
	(control_dependences::get_edges_dependent_on): Likewise.
	(control_dependences::get_edge): Likewise.

2013-09-04  Jan Hubicka  <jh@suse.cz>

	* tree.c (types_same_for_odr): Drop overactive check.
	* ipa-devirt.c (hash_type_name): Likewise.

2013-09-04  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
	(analyze_functions): ... here.

2013-09-04  Jan Hubicka  <jh@suse.cz>

	PR middle-end/58201
	* cgraphunit.c (analyze_functions): Clear AUX fields
	after processing; initialize assembler name has.

2013-09-05  Jeff Law  <law@redhat.com>

	* tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
	from thread_around_empty_block.  Record threading path into PATH.
	Recurse if threading through the initial block is successful.
	(thread_across_edge): Corresponding changes to slightly simplify.

2013-09-05  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md
	(type): Remove frecpe, frecps, frecpx.
	(aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
	fix to be a TARGET_SIMD instruction.
	(aarch64_frecps): Remove.
	* config/aarch64/aarch64-simd.md
	(aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
	(aarch64_frecps<mode>): Handle all float/vector of float modes.

2013-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
	    Sofiane Naci  <sofiane.naci@arm.com>

	* config/arm/types.md (define_attr "type"): Expand "arlo_imm"
	into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
	Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
	"alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
	"log…
bluecmd pushed a commit to bluecmd/or1k-gcc that referenced this pull request Jul 21, 2014
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@205376 138bc75d-0d04-0410-961f-82ee72b054a4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants